Method and system for monitoring and tracking browsing activity on a handled device

ABSTRACT

A system and method for method for monitoring and tracking browsing activity of a user on a client device. The method includes generating, based on browsing activity information of a user interacting with at least a page displayed over the client device and page information identifying in part the page displayed over the client device, an exposure map at a page-level view, wherein the exposure map indicates a salience of each area of a page-view respective of the page displayed over the client device and visited by the user.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.16/102,122 filed on Aug. 13, 2018, which is in turn a continuation of,and claims the benefit of, U.S. patent application Ser. No. 13/888,942filed on May 7, 2013, now U.S. Pat. No. 10,063,645, which claims thebenefit of U.S. Provisional Application No. 61/645,331 filed on May 10,2012. The contents of all of the above-referenced applications areincorporated herein by reference.

BACKGROUND

The Internet is a collection of disparate computer systems which use acommon protocol to communicate with each other. A common use of theInternet is to access World Wide Web (web) pages. Web pages aretypically stored on a server and remotely accessed by a client over theInternet using a web browser.

A web site is a collection of web pages. A web site typically includes ahome page and a hierarchical order of follow-on web pages that areaccessible through the home page. The web pages are connected to eachother using hypertext links. The links allow a user to browse web pagesof a web site by selecting the links between the web pages. Distinct Websites may be respectively identified by respective distinctly associatedInternet domain names.

To increase user visitations and revenue, web sites have become verysophisticated. Web sites typically include web pages that provideinformation to users, advertise products or services to users and/orprovide site search functions for users. A problem for web site ownersis how to determine how successful the web site is, for example, whetherthe informational or other needs of users are met and whether the usersare purchasing goods and services advertised on their site.

Programs for analyzing traffic on a network server, such as a webserver, are discussed in the related art. In these prior art systems,the program typically runs on the web server that is being monitored.Data is compiled, and reports are generated on demand or are deliveredfrom time to time via email to display information about web serveractivity, such as the most popular page by number of visits, peak hoursof website activity, most popular entry page, and so on. Alternativelydata is logged on the web server that is being monitored and the logsare transferred to another computer, where they are compiled andanalyzed.

Another technique for collecting web site analytics is by means of aclient side script being embedded in web pages to monitor traffic. Sucha script can collect information and submit it to a central server wherethe information is analyzed and stored. The script runs on a clientdevice that typically collects URLs that a user visits, mouse movement,scrolling of web pages, resizing of browser windows, click events,keyboard use etc. (“per-action” data), the sequence of the visited URLs,and so on. The collected information is typically assembled and sent,“per-page” together with the identification of the client (e.g., an IPaddress) to the central server.

The sequence of visited URLs is typically gathered using a linear modelof web browsing, where a visitor navigates from web page A to web page Bto web page C. However in reality, a user may open several browsers'windows or tabs, and then switch from one to another in any way thevisitor likes. The linear model originated from the linear nature of webserver logs from which traffic analysis evolved. A result of this linearmodel is that the time a visitor spends on a web page is measured as thetime that passes from the load event to the unload event. However, thistime usually does not represent the real time a user has spentinteracting with the page, but rather with the time the page remainedopen.

The conventional monitoring techniques that are based on a client-sizescript were primarily designed to be compatible with web browsersexecuted over personal computers and the like, where the user interactswith the browser using a mouse, and where the browser is active within awindow. However, handled computing devices, such as smart phones, tabletcomputers, electronic readers, and like, have increasingly become verypopular.

There are a number of differences in browsing activity performed in thehandled devices versus personal computers. For example, handled devicesallow users to interact with web pages through a touch screen display.In most cases, the mouse is replaced with a finger whereby theinteraction is merely performed by tapping on the touch screen display.In addition, the content of a web page displayed in a browser executedwithin a handheld device (a “mobile browser”) is adapted to a smallerdisplay area. Thus, the content is displayed differently in the mobilebrowser than in a browser of a personal computer. Further, handleddevices allow the execution of “mobile applications” also known as“APPs”. These mobile applications provide access to web content that isnot accessed through the mobile browsers. Providers of such applicationsare increasingly interested in information about their visitors.

At least due to the above noted differences related to browsing activityon handled devices, conventional client-side monitoring scripts cannotaccurately monitor users' interaction with web pages and mobileapplications.

Therefore, it would be advantageous to provide a solution that overcomesthe deficiencies of conventional techniques for tracking and analyzingusers' browsing activity.

SUMMARY

A summary of several example embodiments of the disclosure follows. Thissummary is provided for the convenience of the reader to provide a basicunderstanding of such embodiments and does not wholly define the breadthof the disclosure. This summary is not an extensive overview of allcontemplated embodiments, and is intended to neither identify key orcritical elements of all embodiments nor to delineate the scope of anyor all aspects. Its sole purpose is to present some concepts of one ormore embodiments in a simplified form as a prelude to the more detaileddescription that is presented later. For convenience, the term “someembodiments” or “certain embodiments” may be used herein to refer to asingle embodiment or multiple embodiments of the disclosure.

Certain embodiments disclosed herein include a method for tracking, at aserver, browsing activity of a user on a client device. The methodcomprises: determining, at the server, based on browsing activityinformation of a user interacting with at least a page displayed on theclient device with a display having a first size, a salience to the userover the course of the browsing activity of each area of a page-view forthe page visited by the user and displayed on the client device, whereinthe browsing activity information includes browsing activity informationfor each of a plurality of different viewports, wherein a viewport is avisible area of the page on the display of the client device at anygiven moment and has a size that is less than the entirety of the page;compensating, at the server, for differences between the layout of thepage at the client device and how the page would appear at at least onedevice differing in at least one respect from the client device bytransforming browsing activity information for at least two of theplurality of different viewports of the page visited by the user into areference exposure map indicating the salience of each area of the pagevisited by the user with respect to a reference layout which is a layoutof the page that is different from at least the page view of the visitedpage for the client device; and sending, from the server, the referenceexposure map for display on an output display.

Certain embodiments disclosed herein also include a non-transitorycomputer readable medium having stored thereon instructions for causinga processing circuitry to execute a process for tracking browsingactivity of a user on a client device, the process comprising:determining, at the server, based on browsing activity information of auser interacting with at least a page displayed on the client devicewith a display having a first size, a salience to the user over thecourse of the browsing activity of each area of a page-view for the pagevisited by the user and displayed on the client device, wherein thebrowsing activity information includes browsing activity information foreach of a plurality of different viewports, wherein a viewport is avisible area of the page on the display of the client device at anygiven moment and has a size that is less than the entirety of the page;compensating, at the server, for differences between the layout of thepage at the client device and how the page would appear at at least onedevice differing in at least one respect from the client device bytransforming browsing activity information for at least two of theplurality of different viewports of the page visited by the user into areference exposure map indicating the salience of each area of the pagevisited by the user with respect to a reference layout which is a layoutof the page that is different from at least the page view of the visitedpage for the client device; and sending, from the server, the referenceexposure map for display on an output display.

Certain embodiments disclosed herein also include a system for trackingbrowsing activity of a user on a client device, comprising: a processingcircuitry; and a memory, the memory containing instructions that, whenexecuted by the processing circuitry, configure the system to:determine, at the server, based on browsing activity information of auser interacting with at least a page displayed on the client devicewith a display having a first size, a salience to the user over thecourse of the browsing activity of each area of a page-view for the pagevisited by the user and displayed on the client device, wherein thebrowsing activity information includes browsing activity information foreach of a plurality of different viewports, wherein a viewport is avisible area of the page on the display of the client device at anygiven moment and has a size that is less than the entirety of the page;compensate, at the server, for differences between the layout of thepage at the client device and how the page would appear at at least onedevice differing in at least one respect from the client device bytransforming browsing activity information for at least two of theplurality of different viewports of the page visited by the user into areference exposure map indicating the salience of each area of the pagevisited by the user with respect to a reference layout which is a layoutof the page that is different from at least the page view of the visitedpage for the client device; and send, from the server, the referenceexposure map for display on an output display.

BRIEF DESCRIPTION OF DRAWINGS

The subject matter that is regarded as the invention is particularlypointed out and distinctly claimed in the claims at the conclusion ofthe specification. The foregoing and other features and advantages ofthe invention will be apparent from the following detailed descriptiontaken in conjunction with the accompanying drawings.

FIG. 1 is a diagram of a network system utilized to describe the variousembodiments disclosed herein.

FIG. 2 is a flowchart of a method for collecting and recording useractivity information as performed by the tracking code according to oneembodiment.

FIG. 3 is a flowchart illustrating a method for tracking activities of auser according to one embodiment.

FIG. 4 is a flowchart illustrating the process for generating theexposure map at pageview level of a user according to one embodiment.

FIGS. 5A, 5B, 5C and 5D illustrate the process of generating a mappedviewport instance.

DETAILED DESCRIPTION

It is important to note that the embodiments disclosed are only examplesof the many advantageous uses of the innovative teachings herein. Ingeneral, statements made in the specification of the present applicationdo not necessarily limit any of the various claimed inventions.Moreover, some statements may apply to some inventive features but notto others. In general, unless otherwise indicated, singular elements maybe in plural and vice versa with no loss of generality. In the drawings,like numerals refer to like parts through several views.

FIG. 1 shows an exemplary and non-limiting diagram of a network system100 utilized to describe the various embodiments of the invention. Thenetwork system 100 includes a client device 101 connected to a network110. To the network 110 are also connected a web server 120 and atracking server 130. The tracking server 130 processes and analyzes useractivity information collected by a tracking code executed in the clientdevice 101.

In one embodiment, the tracking server 130 generates at least anexposure map or report showing areas in a web page, downloaded from theweb server 120, with which a user of the client device 101 mostinteracted and/or viewed. In an embodiment, the exposure map may begraphically presented as a heat map. As will be described below,exposure maps at a pageview level, at a user level, and at a web pagelevel are also generated according to the teachings disclosed herein.

The tracking server 130 may include an interface (not shown in FIG. 1)to receive user activity information representative of activitiesperformed by the user during a visit to a web page, and to receive webpage content information representative of the web page contentdisplayed to the user during the visit. The information received throughthe interface may be compressed. The tracking server 130 also includes aprocessor (not shown in FIG. 1) configured to perform at least the tasksof decompressing the received data and generating at least the exposuremaps and other analytic reports with regard to users' activity. Theprocesses performed by the tracking server 130 are described in greaterdetail below.

The web server 120 can host a web site accessed through a browser 102 ofthe client device 101. The web server 120 may also execute anapplication that provides functionality and contents to a mobileapplication 103 (or APP) executed over the client device 101. Theteachings disclosed herein can be utilized to generate the exposure mapsand other analytics data of either the web pages of a web site displayedover a browser 102 or the content displayed over a mobile application103. Without limiting the scope of the invention and merely for the sakeof simplicity, the description herein below will be made with referenceto the browser 102. It should be further noted that the disclosedteachings are not limited for content retrieved from one server 120 anddisplayed over the client device 101. The browser 102 can render displaycontent retrieved from a plurality of servers, web and/or applicationservers.

The client device 101 may be, but is not limited to, a smart phone, atablet computer, a personal computer, a laptop computer, a netbookcomputer, an electronic reader, and the like. The browser 102 may be anyweb browser, such as Safari®, Firefox®, Internet Explorer®, Chrome®, andthe like. The processor of the client device 101 runs an operatingsystem that may include iOS®, Android®, Unix®, Windows®, and the like.The mobile application 103 may be any application that is executableover the client device 101 and/or an extension of the browser 102. Themobile application 103 is typically downloaded from a central repository140 which may, e.g., AppStore® by Apple Computers®, Google® Play®, andthe like.

In accordance with one embodiment, the user activity information iscollected through a recording process performed by using a trackingcode. The tracking code may be realized as a script, e.g., a, JavaScriptembedded in a web page downloaded to the client device 101. The trackingcode may also be embedded in a mobile application downloaded andinstalled in the client the device 101. It should be noted that thetracking code is seamlessly incorporated and executed in the clientdevice 101.

In one embodiment, the tracking code may start its executionautomatically. Alternatively, the code may wait for an instruction fromsome other piece of script in the web page or the mobile application103. The tracking code can decide whether to track activities of a useror not. Such a decision can be responsive to one or more predefinedparameters, a result of a random process, or a combination thereof. Thepredefined parameters may include, for example, a page URL, a referringpage URL, an IP address, a time zone, a browser type, whether the useris a returning user (to the web page and/or to the web site), a specificuser action, and the like.

A user of the client device 101 can visit a web site that includes oneor more web pages. While a web page is displayed in the browser 102, theuser can perform various activities that are monitored by the trackingcode. The interaction of a user within one web page is referred to as a“pageview session.”

According to one embodiment, user activity information, web pageinformation, and client computer related information can be transmittedby the tracking code to the tracking server 130 in different manners.For example, web page information or client computer information (e.g.,a web page identifier, URL, referrer, browser type, platform type,screen resolution and depth, page load start time, initialization starttime, time zone, user identifier, system capabilities (plug-ins,cookies, Flash®)) can be transmitted in a non-compressed (or acompressed) format, even before a transmission of the user activityinformation.

In another embodiment, the tracking code waits for user activities andin response to these activities compresses and buffers the collecteduser activity information, and selectively transmits the compressed useractivity information. The compression and buffering reduces thebandwidth and overhead associated with the transmission of the useractivity information over the network 110. It should be noted thathighly detailed user activity information is acquired, and in order tolimit the overall resources (such as bandwidth) allocated to thetransmission of user activity information, compression and bufferingtechniques can be used when transmitting the collected user activity. Itshould be further noted that reducing the amount of data transmitted tothe tracking server is highly important in cases where the communicationbetween the client device 101 and the tracking sever 130 is establishedover a cellular network. Any data compression techniques may be utilizedto compress the information sent from the client device 101 to thetracking server 130.

According to one embodiment, during the recording of the pageviewsession, the tracking code listens to events generated by the browser102 and determines for each event if the event should be collected or ifit should trigger the collection of data. Specifically, two sets of dataare collected during a pageview session, (i.e., an interaction of a userwithin the web page): the pan/zoom data set and the element data set.The pan/zoom data set relates to pan/zoom operations and the elementdata set relates to elements of the web page.

The pan/zoom data set includes the size of the web page downloaded tothe user device; the size of a visible area on the client device 101 atany given moment (hereinafter “viewport”); the position of each viewport(e.g., position of scroll bars); a time period for which each viewportwas active; and a layout in which the browser 102 attempted to renderthe web page. Using the pan/zoom data set, a rectangular area that wasvisible on the client device 101 at every given moment can bedetermined. The position data can be represented using x, y coordinatesof the viewport. To gather the pan/zoom data set, events including, forexample, load, unload, scroll, resize, mousemove, mousedown, mouseup,click, keydown, keypress, keyup, paste, mouseleave, mouseenter,activate, deactivate, focus, blur, select, selectstart, submit, error,abort, and so on are monitored and recorded by the tracking code. In apreferred embodiment, when the tracking code is executed by a handleddevice having a touch screen display, events, such as orientationchange,touchstart, touchmove, and touchend are recorded and monitored.

Each event is associated with multiple properties or attributes. Theseproperties can be recorded together with the event. For example, mouseevents are transmitted with x, y coordinates of the cursor and the stateof the mouse buttons; keyboard events are transmitted with the key thatwas pressed; scroll events are transmitted with the position of thescroll bars; resize events are transmitted with the new window size;click events are transmitted with the type and URL of the object or linkthat was clicked on, the orientation of the client device, and so on. Inone embodiment, each event is transmitted with the time that itoccurred. The time can be absolute or relative to a known previouslytransferred time, such as load time.

The element data set includes position information about one or moreelements in the web page. For example, the tracking code may collectposition information about a subset of elements that are in the centerof a web page or center of a viewport. The element position informationis collected as the user interacts with the web page. An element can be,for example, a paragraph of text, a link, an image, a button, or anydocument object module (DOM) element of the web page. The positioninformation of an element includes at least one of: identification ofthe element (DOM) path, identification (ID), and so on, the boundingrectangle of the element, and optional identification information of thechildren's elements. For example, if the element is a “form” type itschildren may be “submit button” and “select control.”

It should be noted that for each pageview (i.e., a visit of a web page)information related to a plurality of viewports is collected. A viewportchanges during the pageview, thus multiple viewports can be rendered foreach pageview, typically in response to a pan or zoom operation. Eachviewport being rendered in a pageview is referred to as a “viewportinstance” and starts a viewport instance. The width/height of theviewport instance determines the “zoom” level of the viewport instance.The zoom level determines at which level a given area was viewed. In oneembodiment, the collected and recorded information may be assembled perpageview.

Additional information that may be collected by the tracking code mayinclude checksums and cryptographic hashes of various data in the webpage. Checksums may include, but are not limited to, CRC, CRC32, andFletcher checksum algorithms and the hashes may include, but not arelimited to, SHA-1, and MD4 hash algorithms.

FIG. 2 is an exemplary and non-limiting flowchart 200 of a method forcollecting and recording user activity information as performed by thetracking code according to one embodiment. At S210, the tracking code isdownloaded, over the network 110, to the client device 101. As mentionedabove, the tracking code may be part of the web page content retrievedfrom the web server 120 or may be embedded in the mobile application103. The downloaded tracking code is saved in a tangible memory of theclient device 101 and executed by a processor of the client device 101.In one embodiment, the tracking code is realized as a Java script. Thetracking code may be downloaded during different stages, in parts, or inresponse to the execution of the initially downloaded tracking code.

At S220, it is determined whether to track the activities of the user.As a non-limiting example, the determination is responsive to previousvisits of the user. If it is determined. that the tracking should beperformed, execution continues with S230; otherwise, execution ends.

At S230, tracking of the user activity is performed at least byexecuting the tracking code by the client device 101. Specificallyduring a pageview session, at S230 events generated by the browser 102(or mobile application 103) are monitored and recorded. In addition, atleast position information related to the pan/zoom actions and elementsin the web page are gathered into the pan/zoom and element data sets.The contents of these data sets and the events being monitored andrecorded are discussed in detail above. It should be noted that during apageview session many viewport instances are created. The outcome ofS230 is the user activity information per pageview which includes dataabout the plurality of viewport instances rendered during a pageviewsession. The collected and recorded information allows detecting whichrectangular area was visible, at any given moment, on the browser 102during the pageview session.

At S240, it is checked whether a pageview session ended (e.g., whencapturing an unload event). If so, execution continues with S250;otherwise, execution returns to S230. Optionally, at S250, the collecteduser activity information, or portion thereof is compressed and bufferedto reduce the amount of data to be sent to the tracking server 130 overthe network 110. The compression can be performed using any techniquesfor data compression known in the art.

At S260, the user activity information (which may be compressed) is sentto the tracking server 130 over the network 110. In an embodiment, thetransmission of the collected information includes sending an initialmessage to the tracking server 130. The initial message can include, forexample, web page information or client device information as detailedabove. In another embodiment, user activity information can be sent inchunks once a certain amount of data has been collected.

FIG. 3 shows a non-limiting and exemplary flowchart 300 illustrating amethod for tracking activities of a user of a client device according toone embodiment of the invention. The method is performed by the trackingserver 130.

At S310, the user activity information (either compressed oruncompressed) representative of activities performed by the user of theclient device 101 during a pageview session is received. The contents ofreceived user activity information are detailed above. Optionally, atS320, the tracking server 130 receives web page content informationrepresentative of web page content displayed to the user during thevisit. Such information can be received from an external source (e.g.,the web server 120) or the client 101.

Optionally, at S330, the received user activity information, ifcompressed, is decompressed. At S340, at least a pageview-level exposuremap indicating the salience of the content in the pageview visited bythe user of the client 101 is generated. The exposure map is generatedin response to the user activity information and, in certainimplementations, also in response to the web page content informationcollected by the tracking code. The exposure map is generated at apageview level. In one embodiment, the exposure map is rendered as atwo-dimensional heat map. The execution of S340 is described in greaterdetail with reference to FIGS. 4-5 below. An example for a tracking codeand a heat exposure map can be found in U.S. Pat. No. 7,941,525, whichis assigned to the common assignee, and is hereby incorporated byreference for all the useful information it contains.

At S350, the pageview-level exposure map for a webpage visited by a userof the client device 101 is saved in a storage device. The storagedevice may be connected to the tracking server 130 or attached to thenetwork 110. At S360, exposure maps generated for different pageviews(web pages) visited by the user of the client device 101 are aggregatedto generate a visitor-level exposure map. This map represents the timethe user interacted and viewed any area in any visited web page, whetherthe user viewed a certain page area, and/or in how many pageviews aspecific user viewed, and so on.

At S370, visitor-level exposure maps generated for different users areaggregated to generate a page-level exposure map. This map representshow much time a specific area in the pageview was visible by differentusers, if a specific area in the pageview was visible to all users orsome of the users, in how many pageviews was an area visible, how manyusers viewed a specific area in a pageview, and so on. The mapsgenerated at S360 and/or S370 may also be saved in the storage device.The visitor-level exposure map and page-level exposure map can also berendered as a two-dimensional heat map. It should be noted that S360 andS370 are optional.

FIG. 4 shows a non-limiting and exemplary flowchart illustrating theoperation of S340 in more detail. As mentioned above, S340 results in anexposure map generated for a pageview visited by a specific user (e.g.,a user of the client 101) by processing the received user activity data.Specifically, this includes aggregation of viewport instances in such away that the aggregation result would be overlaid on top of anotherpageview of the web page corresponding to the pageview aggregated. Thisis performed in order to compensate for the difference between a visualrepresentation on the client device 101 of the web page, and a visualrepresentation of the web page on another display. That is, the same webpage is typically rendered differently on different devices, and withdifferent layouts. This is due to the fact that different devicesdisplay the same web page differently, because of different types ofdisplay, browsers, operating systems, and so on. Thus, each pageview maybe characterized with a layout being different from the layout of theweb page (hereinafter the “reference layout”). A layout defines how theelements of the web page are positioned and typically includes a list ofelements, their identifiers and their absolute positions. To provide anaccurate exposure map, the aggregation of viewport instances should beperformed invariant to the layout of the pageviews as displayed on theclient devices. Thus, an aggregation of viewport instances from anypageview should be mapped to overlay the reference layout correctly.

With this aim, at S410, a reference layout is created. In oneembodiment, the creation of the reference layout includes rendering, inthe tracking server 130, a web page corresponding to the pageview andinspecting the location of each element in the rendered web page. Theweb page corresponding to the pageview is determined based on the webpage content information collected by the tracking code (e.g., the URLof the web-page viewed by the user). In another embodiment, a web pageis rendered, by a rendering engine, on a device of the user who receivesthe exposure map, and the layout of such web page is sent to thetracking server 130 for report generation. The user, in this case, maybe a system administrator of a web site hosted by the web server 120, acontent manager of the web site hosting the rendered web page, and thelike. The device of such a user is connected to the network 110 and hasa communication channel with the tracking server 130 and the web server120. Alternatively, the reference layout may be received from anexternal source.

At S420, each viewport instance from the pageview layout (i.e., thelayout as displayed over the browser 102) is mapped to the referencelayout. This is performed using the information collected in thepan/zoom and element data sets. In one embodiment, S420 includesdetecting the “mapped intersection area” of an element in the referencelayout corresponding to a matching element in the viewport instance inthe pageview layout. The mapped intersection area is a rectangle createdin the reference layout for each element or combination of elements thatintersects the viewport instance in the pageview layout. An intersectionof an element in the pageview layout with the viewport instance islinearly mapped to result in the “mapped intersection area.” This can beachieved, for example, by applying the information that transforms abounding box of the element in the pageview layout to a bounding box ofthe element in the reference layout.

The result of S420 is one or more rectangles representing the mapping ofall visible areas of known elements in the viewport instance. At S430, aunion operation is performed on all the rectangles produced at S420 tooutput a mapped viewport instance that represents the visible area ofthe viewport instance in the reference layout. At S440, the mappedviewport instance is saved.

At S450, it is checked if all the viewport instances in the pageview aremapped, and if so, execution continues with S460; otherwise, executionreturns to S420 where the mapping of another viewport instance isperformed.

At S460, all mapped viewport instances are aggregated to create theexposure map at the pageview level. In one embodiment, S460 includesaggregating all the rectangles (or any other shape formed due to themapping) of mapped viewport instances using an accumulator. This wouldresult in the entire space of the pageview relative to the referencelayout that was visible to the user. Then, to determine the salience ofthe visible area, the delta time spans of all viewport instancesrespective of the mapped viewports are computed as a weighted sum. Inone embodiment, the weight can be assigned according to the viewportzoom level. For example, a pageview that includes a certain paragraph isexposed in a viewport twice, each time for y seconds. The first time itis zoomed in more than the second time (e.g., 3×). The total pageviewsalience for this paragraph is y+y. However, when assigning a weight tothe viewport zoom levels the pageview salience for this paragraph wouldbe y+3y Other functions can be utilized instead of a weighted sum, forexample, a sum or a binary ‘OR’ function.

The exposure map, in one embodiment, is a two-dimensional map ofexposure time values, with each such value indicating the time aspecific area was visible or “exposed”. The exposure map can begraphically rendered as a heat map using these values. In anotherembodiment, the exposure map may be generated as a tabulated reportlisting rectangles (or any other geometric shapes) and their exposuretime values.

As mentioned above, the pageview-level exposure map can be utilized togenerate a visitor-level exposure map and page-level exposure map. Thevisitor-level exposure map is generated by aggregating a plurality ofpageview-level exposure maps generated for a certain user for differentpageviews. Such aggregation can be performed using a sum or a binary ORfunction. The page-level exposure map is generated by aggregating aplurality of visitor-level exposure maps generated for a plurality ofusers. Such aggregation can be performed using a sum or a binary ORfunction. The exposure maps can be sent via the Internet or downloadedfrom a central repository by a user of the tracking entity (the trackingserver 130). Such a user may be, for example, a system administrator ofa web site hosted by the server, a content manager of the web sitehosting the rendered web page, and the like.

It should be appreciated by one of ordinary skill that other types ofanalytics reports and/or exposure maps can be generated based on theteachings disclosed herein. Thus, the embodiments disclosed herein arenot limited to the generation of pageview-level, visitor-level, and/orpage-level exposure maps.

FIGS. 5A-5D show a non-limiting example for generating the mappedviewport instance as discussed with reference to S420, S430 above. FIG.5A depicts a pageview layout 501 that includes child-elements 502 and503 of a main page element. A viewport instance 504 illustrates thevisible area. FIG. 5B depicts a reference model 505 that includes childelements 502′ and 503′ corresponding to the elements 502 and 503,respectively, in the pageview layout. FIG. 5C depicts the mapping of theviewport instance 504 (not shown in FIG. 5C) from a pageview layout 501to a reference layout 505. As can be noticed, a rectangle 506 is createdas a “mapped intersection area” for each element 502′ and 503′ that wasvisible in the instance 504. For example, the rectangle 506-1 completelysurrounds the element 503′ as the respective element 503 was completelyincluded in the viewport instance 504 (see FIG. 5A). The rectangle 506-2partially boxes the element 502′ proportionally to the amount theintersection of its corresponding element 502 with the instance 504. Therectangle 506-3 is the portion of a main page element that is includedin the viewport instance 504 after being mapped from the pageview layoutto the reference layout. The mapped visible instance is the spaceenclosed in the union of the rectangles 506-1, 506-2, and 506-3 as shownin FIG. 5D.

The various embodiments disclosed herein may be implemented as hardware,firmware, software, or any combination thereof. Moreover, the softwareis preferably implemented as an application program tangibly embodied ona program storage unit or non-transitory computer readable mediumconsisting of parts, or of certain devices and/or a combination ofdevices. A non-transitory computer readable medium is any computerreadable medium except for a transitory propagating signal. Theapplication program may be uploaded to, and executed by, a machinecomprising any suitable architecture. Preferably, the machine isimplemented on a computer platform having hardware such as one or morecentral processing units (“CPUs”), a memory, and input/outputinterfaces. The computer platform may also include an operating systemand microinstruction code. The various processes and functions describedherein may be either part of the microinstruction code or part of theapplication program, or any combination thereof, which may be executedby a CPU, whether or not such computer or processor is explicitly shown.In addition, various other peripheral units may be connected to thecomputer platform such as an additional data storage unit and a printingunit. Furthermore, a non-transitory computer readable medium is anycomputer readable medium except for a transitory propagating signal.

All examples and conditional language recited herein are intended forpedagogical purposes to aid the reader in understanding the principlesof the invention and the concepts contributed by the inventor tofurthering the art, and are to be construed as being without limitationto such specifically recited examples and conditions. Moreover, allstatements herein reciting principles, aspects, and embodiments of theinvention, as well as specific examples thereof, are intended toencompass both structural and functional equivalents thereof.Additionally, it is intended that such equivalents include bothcurrently known equivalents as well as equivalents developed in thefuture, i.e., any elements developed that perform the same function,regardless of structure.

It should be understood that any reference to an element herein using adesignation such as “first,” “second,” and so forth does not generallylimit the quantity or order of those elements. Rather, thesedesignations are generally used herein as a convenient method ofdistinguishing between two or more elements or instances of an element.Thus, a reference to first and second elements does not mean that onlytwo elements may be employed there or that the first element mustprecede the second element in some manner. Also, unless statedotherwise, a set of elements comprises one or more elements.

As used herein, the phrase “at least one of” followed by a listing ofitems means that any of the listed items can be utilized individually,or any combination of two or more of the listed items can be utilized.For example, if a system is described as including “at least one of A,B, and C,” the system can include A alone; B alone; C alone; 2A; 2B; 2C;3A; A and B in combination; B and C in combination; A and C incombination; A, B, and C in combination; 2A and C in combination; A, 3B,and 2C in combination; and the like.

What is claimed is:
 1. A method for tracking a user activity,comprising: generating, by at least one processor, a user activityinformation representative of the user activity performed by a pluralityof users on a web page displayed on a plurality of client devices duringvisits to the web page; generating a dataset using on the user activityinformation, the dataset including data associated with a plurality ofviewports, wherein the viewports are visible portions of the web pagedisplayed by the plurality of client devices to the users during thevisits, wherein the dataset comprises a pan or zoom dataset thatindicates zoom levels associated with each of the viewports with respectto an entirety of the web page, wherein the pan or zoom datasetcomprises coordinates for each of the viewports indicating displaypositions of the viewports within a display the entirety of the webpage; determining a salience of each area of the web page based on thedataset; generating, based on the dataset and the salience of each area,an exposure map associated with the web page, wherein the exposure mapcomprises a visual representation of the web page displayed during thevisits including a heat map graphically identifies levels of interactionor display to the users based on the salience of each area of the webpage; and causing the exposure map to be displayed on a playback displaythat is separate from the plurality of client devices.
 2. The method ofclaim 1, wherein the heat map is a two-dimensional heat map.
 3. Themethod of claim 1, wherein the user activity information comprises atleast one event, wherein the at least one event comprises: loading,scrolling, moving a mouse cursor, clicking or selecting an element onthe web page, resizing a window displaying the web page, activating akey on a keyboard or any combination thereof.
 4. The method of claim 1,further comprising: receiving web page content information collected bya tracking code on a plurality of browsers on the plurality of clientdevices; and generating the exposure map based on the web page contentinformation.
 5. The method of claim 1, wherein the user activityinformation representative of the user activity performed by theplurality of users comprises a plurality of user activity informationassociated with the plurality of users, and wherein the datasetcomprises a plurality of datasets associated with the plurality of useractivity information.
 6. The method of claim 5, wherein determining thesalience of each area of the web page further comprises determining thesalience of each area of the web page based on the plurality ofdatasets, and wherein generating the exposure map comprises generating aplurality of visitor-level exposure maps based on the plurality ofdatasets and the salience of each area, and aggregating the plurality ofvisitor-level exposure maps to generate the exposure map.
 7. The methodof claim 1, wherein the pan or zoom dataset further comprises a size ofthe web page displayed by one of the client devices, a plurality ofsizes of the viewports, a position of the one of the viewports withrespect to the web page, a time period associated with the one of theviewports being active, a layout associated with a browser displayingthe web page, or any combination thereof.
 8. The method of claim 1,wherein the dataset further comprises an element data set that comprisesposition information associated with elements included in the web page.9. The method of claim 1, wherein the salience of each area of the pageis based on a number of times each area of the web page is included inone of the plurality of viewports, based on periods of time that eacharea of the web page is included in one of the plurality of viewports, alevel of zoom associated with each area when each area of the web pageis included in one of the plurality of viewports, or any combinationthereof.
 10. The method of claim 1, wherein generating the exposure mapassociated with the web page comprises: for each user of the pluralityof users, aggregating viewports associated with each user using the panor zoom data set to generate pageview-level exposure maps for each user,wherein aggregating the viewports associated with each user comprises:overlaying the aggregated viewports associated with each user onpage-view layouts, and mapping each of the viewports of the aggregatedviewports from the page-view layouts to a reference layout that isdifferent from the page-view layouts; aggregating the pageview levelexposure maps for each user to generate visitor-level exposure maps foreach user; and aggregating the visitor-level exposure maps for each userto generate the exposure map for the web page.
 11. A system for trackinga user activity, comprising: at least one processor; and a memory havinginstructions stored thereon that, when executed by the at least oneprocessor, causes the system to perform operations comprising:generating a user activity information representative of the useractivity performed by a plurality of users on a web page displayed on aplurality of client devices during visits to the web page; generating adataset using on the user activity information, the dataset includingdata associated with a plurality of viewports, wherein the viewports arevisible portions of the web page displayed by the plurality of clientdevices to the users during the visits, wherein the dataset comprises apan or zoom dataset that indicates zoom levels associated with each ofthe viewports with respect to an entirety of the web page, wherein thepan or zoom dataset comprises coordinates for each of the viewportsindicating display positions of the viewports within a display theentirety of the web page; determining a salience of each area of the webpage based on the dataset; generating, based on the dataset and thesalience of each area, an exposure map associated with the web page,wherein the exposure map comprises a visual representation of the webpage displayed during the visits including a heat map graphicallyidentifies levels of interaction or display to the users based on thesalience of each area of the web page; and causing the exposure map tobe displayed on a playback display that is separate from the pluralityof client devices.
 12. The system of claim 11, wherein the heat map is atwo-dimensional heat map.
 13. The system of claim 11, wherein the useractivity information comprises at least one event, wherein the at leastone event comprises: loading, scrolling, moving a mouse cursor, clickingor selecting an element on the web page, resizing a window displayingthe web page, activating a key on a keyboard or any combination thereof.14. The system of claim 11, wherein the system performs operationsfurther comprising: receiving web page content information collected bya tracking code on a plurality of browsers on the plurality of clientdevices; and generating the exposure map based on the web page contentinformation.
 15. The system of claim 11, wherein the user activityinformation representative of the user activity performed by theplurality of users comprises a plurality of user activity informationassociated with the plurality of users, and wherein the datasetcomprises a plurality of datasets associated with the plurality of useractivity information.
 16. The system of claim 15, wherein determiningthe salience of each area of the web page further comprises determiningthe salience of each area of the web page based on the plurality ofdatasets, and wherein generating the exposure map comprises generating aplurality of visitor-level exposure maps based on the plurality ofdatasets and the salience of each area and aggregating the plurality ofvisitor-level exposure maps to generate the exposure map.
 17. The systemof claim 11, wherein the pan or zoom dataset further comprises a size ofthe web page displayed by one of the client devices, a plurality ofsizes of the viewports, a position of the viewports with respect to theweb page, a time period associated with the viewports being active, alayout associated with a browser displaying the web page, or anycombination thereof.
 18. The system of claim 11, wherein the datasetfurther comprises an element data set that comprises positioninformation associated with elements included in the web page.
 19. Thesystem of claim 11, wherein the salience of each area of the page isbased on a number of times each area of the web page is included in oneof the plurality of viewports, based on periods of time that each areaof the web page is included in one of the plurality of viewports, alevel of zoom associated with each area when each area of the web pageis included in one of the plurality of viewports, or any combinationthereof.
 20. The system of claim 11, wherein generating the exposure mapassociated with the web page comprises: for each user of the pluralityof users, aggregating viewports associated with each user using the panor zoom data set to generate pageview-level exposure maps for each user,wherein aggregating the viewports associated with each user comprises:overlaying the aggregated viewports associated with each user onpage-view layouts, and mapping each of the viewports of the aggregatedviewports from the page-view layouts to a reference layout that isdifferent from the page-view layouts; aggregating the pageview levelexposure maps for each user to generate visitor-level exposure maps foreach user; and aggregating the visitor-level exposure maps for each userto generate the exposure map for the web page.
 21. A computer-readablestorage medium, having instructions stored thereon that, when executedby a processor, causes the processor perform operations comprising:generating a user activity information representative of the useractivity performed by a plurality of users on a web page displayed on aplurality of client devices during visits to the web page; generating adataset using on the user activity information, the dataset includingdata associated with a plurality of viewports, wherein the viewports arevisible portions of the web page displayed by the plurality of clientdevices to the users during the visits, wherein the dataset comprises apan or zoom dataset that indicates zoom levels associated with each ofthe viewports with respect to an entirety of the web page, wherein thepan or zoom dataset comprises coordinates for each of the viewportsindicating display positions of the viewports within a display theentirety of the web page; determining a salience of each area of the webpage based on the dataset; generating, based on the dataset and thesalience of each area, an exposure map associated with the web page,wherein the exposure map comprises a visual representation of the webpage displayed during the visits including a heat map graphicallyidentifies levels of interaction or display to the users based on thesalience of each area of the web page; and causing the exposure map tobe displayed on a playback display that is separate from the pluralityof client devices.
 22. The computer-readable storage medium of claim 21,wherein the user activity information comprises at least one event,wherein the at least one event comprises: loading, scrolling, moving amouse cursor, clicking or selecting an element on the web page, resizinga window displaying the web page, activating a key on a keyboard or anycombination thereof.
 23. The computer-readable storage medium of claim21, wherein generating the exposure map associated with the web pagecomprises: for each user of the plurality of users, aggregatingviewports associated with each user using the pan or zoom data set togenerate pageview-level exposure maps for each user, wherein aggregatingthe viewports associated with each user comprises: overlaying theaggregated viewports associated with each user on page-view layouts, andmapping each of the viewports of the aggregated viewports from thepage-view layouts to a reference layout that is different from thepage-view layouts; aggregating the pageview level exposure maps for eachuser to generate visitor-level exposure maps for each user; andaggregating the visitor-level exposure maps for each user to generatethe exposure map for the web page.
 24. The computer-readable storagemedium of claim 21, wherein the pan or zoom dataset further comprises asize of the web page displayed by one of the client devices, a pluralityof sizes of the viewports, a position of the viewports with respect tothe web page, a time period associated with the viewports being active,a layout associated with a browser displaying the web page, or anycombination thereof.